cmake_minimum_required(VERSION 3.6.0)

project(EasyDeepLearningInferenceLive_FakeCameraFFmpeg_Qt VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
ADD_DEFINITIONS(-DQT_NO_KEYWORDS)
if(CMAKE_VERSION VERSION_LESS "3.7.0")
  set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()

if(CMAKE_CXX_COMPILER_IS_GNUCXX)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
endif()

# include libraries

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
link_libraries(Threads::Threads)

set (OPEN_EVISION_CPP_INCLUDE_WIN "C:/Program Files/Euresys/Open eVision 26.02/Include")
set (OPEN_EVISION_CPP_INCLUDE_LINUX "/opt/euresys/Open_eVision_26_02/include")

include_directories(${OPEN_EVISION_CPP_INCLUDE_LINUX})
link_libraries(dl)

find_package(Qt5 COMPONENTS Widgets)
message(STATUS "QT5 library version ${QT5_VERSION} used")

find_package(PkgConfig REQUIRED)
pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavcodec libavformat libavutil libswscale)

# define executable

add_executable(EasyDeepLearningInferenceLive_FakeCameraFFmpeg_Qt
    EasyDeepLearningInferenceLiveMain.cpp
    ProcessingHandler.cpp
    CameraWidget.cpp
    CameraHandler.cpp
    CameraHandler.h
    ProcessingHandler.h
    CameraWidget.h
    QtDrawAdapter.h
)

target_compile_definitions(EasyDeepLearningInferenceLive_FakeCameraFFmpeg_Qt PRIVATE USE_FAKE_CAMERA_FFMPEG USE_QT)
target_link_libraries(EasyDeepLearningInferenceLive_FakeCameraFFmpeg_Qt PRIVATE PkgConfig::FFMPEG)
target_link_libraries(EasyDeepLearningInferenceLive_FakeCameraFFmpeg_Qt PRIVATE Qt5::Widgets)
